package com.claimSettlement.service;

import com.claimSettlement.pojo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/*
 *菜单Service层接口
 *宁杰
 */
public interface ClaimsService {
    /**
     *
     * @return 获取所有的理赔信息
     */
    List<Settlement> getSettlement(Integer userId);
    /**
     * param 理赔编码和保单号
     * @return 根据条件查询理赔信息
     */
    List<Settlement> getSettlementCond(Integer userId,String settlement_number,String warrantyId);
    /**
     *
     * @param settlement 要新增的数据对象
     * @return 新增状态
     */
    Integer insertClaims(Map<String,Object> map);
    /**
     *
     * @param settlement 要修改的理赔数据对象
     * @return 修改状态
     */
    Integer updateClaims(Map<String,Object> map);
    /**
     *
     * @param settlement 根据理赔编号删除数据
     * @return 删除状态
     */
    Integer deleteClaims(Integer settlement_number);

    /**
     *
     * @param flowId 流程id
     * @return 判断核损流程是否完成
     */
    Integer flowState(Integer flowId);

    /**
     *
     * @param settlement_number 理赔信息id
     * @return 查看当前理赔信息审核状态
     */
    Integer claim_check(Integer settlement_number);

    /**
     *
     * @param settlement_number 修改审核状态
     * @return 修改返回的状态
     */
    Integer updateClaimCheck(Integer settlement_number,Integer claim_check);
    /**
     *
     * @param flowId 修改核损状态
     * @return 修改的状态
     */
    Integer updateFlowState(Integer flowId);
    /**
     *
     * @param settlement_number 理赔信息id
     * @return 修改报案状态
     */
    Integer updateCaseState(Integer settlement_number);
    /**
     *
     * @param settlement_number 理赔信息id
     * @return 修改结案时间状态
     */
    Integer updateCloseCaseTime(Integer settlement_number);
    /**
     *
     * @param settlement_number 理赔id
     * @return 根据id 获取理赔信息
     */
    Settlement getSettlementId(Integer settlement_number);

    /**
     *
     * @param lossId
     * @return 获取定损信息
     */
    Map<String,Object> getSurveyLossInfo(Integer lossId);
    /**
     *
     * @param lossId
     * @return 多条理算信息
     */
    List<Justment> getAdjustmentInfo(Integer lossId);
    /**
     *
     * @return 获取所有险别信息
     */
    List<RiskType> getRiskTypeAll();
    /**
     *
     * @param map 数据集合
     * @return 添加理算信息
     */
    Integer insertAdjustment(Map<String,Object> map);

    /**
     *
     * @param userId 用户id
     * @return 根据报案编号清空理算信息
     */
    Integer deleteAdjustment(Integer userId);

    /**
     *
     * @param userId
     * @return 查询理算信息
     */
    List<Adjustment> getAdjustment(Integer userId);
    /**
     *
     * @param userId
     * @return 获取所有理算任务
     */
    List<LossDetermination> getSettlementTask(Integer userId);
}
